vCPU and vSMP – Hypervisor benchmarks
Some time ago in the in-depth analysis of hypervisor performance we found ourselves faced with a native problem of virtual Simmetric MultiProcessing (vSMP) which would be a methodology of Simmetric MultiProcessing (SMP), thanks to which we can assign more than one virtual CPU (vCPU) to a virtual machine.
This feature would allow you to give more computing power to the virtual machine, but unfortunately it is not always true and depends on the nature of the application whether or not it uses multi-threading logic, as in the illustration below:
To better answer the question we submitted a question in the professional social network linkedin . The “question” we asked is the following:
Multi-vCPU virtual machine cycles scheduling
I need one who explain me, with details, the differences between kernel hypervisors (ESX,XEN,HYPER-V,KVM) about the real performance when we define a Virtual Machine with more than 1 vCPU. I think when a generic application, installed on the VM with 2 vCPU, places a request for CPU cycles, cuncurrently to the two vCPU. These requests goes into a queue for the Host to process. I think the Host wait until there are two Cores with concurrent idle cycles.
If the Host have more VMs not in idle, our VM multi-CPU lost in performance.
Is right for you? Have you experience about it? Can explain me the differences between kernels ? Which hypervisor is the best for this events?
Thanks and good new year
The best responses we received were as follows:
Da Mindaugas Kiznis-IT Professional, IT Infrastructure Solution Architect at CSC.
This presentation is maybe more from the VMware side, because it was made by a VMware guy, but shortly it shows and compares major things about different virtualization principles and products:
http://www.virtualization-symposia2008.lv/files/File/4_vmware_virtualization_symposia_latvia_thuber.pptMaybe these docs will explain about CPU scheduling in virtualization:
http://cs.gmu.edu/~hfoxwell/cs671projects/southern_v12n.pdf
http://www.cs.ucsd.edu/~dgupta/papers/per07-3sched-xen.pdfHere is a good feature comparison:
http://www.it20.info/misc/virtualizationscomparison.htmIf you still will have some specific questions about virtualization, feel free to write me and I will try to answer you.
The links that Mindaugas reports are a fantastic material for study and in-depth analysis and also for comparison between the various hypervisors, I invite you to read them.
Da Manlio I.A. Frizzi-Information Technology and Services Consultant and Contractor at Brain Force. Virtualization Evangelist.
hello Fabio, and, first of all, happy new year!
what you are saying is completely right: the rule of thumb for multi vCPU VMs is creating it only if you know that the application(s) you’re going to install/execute are compiled to use multi-threaded execution.
If not, do it 1-vCPU: the performance will be better.Moreover there are some cases in which multi cpu will degrade the performances: Virtual Machines with Citrix TS installed on them must be 1-vCPU: this because Citrix TS will do a lot of context switches and ESX will do other context switches multiplying the overhead.
Another thing to take into count is having the right multiprocessor kernel installed: a lot of OS detect multi CPU and install the right kernel for the number of (v)CPU that have beeen detected: if you need SMP enabled kernel remember that, used on a 1-(v)CPU environment, it will perform very bad.
For the “best hypervisor” question… I have my ideas… in your list of hypervisor only one can be used in production environment…
hope to help
Manlio
http://virtualaleph.blogspot.com
Manlio’s answer confirms our doubts about the performance of a multi vCPU VM if we do not carefully evaluate the software that must run on it.
Now we want to report an unofficial but not biased benchmark performed by Rick Vanover-MCITP, MCTS, MCSA, system administrator for Safelite AutoGlass. A 12-year IT veteran and online columnist for Virtualization Review.
The full article is published at the following link Lab Experiment Hypervisors
The platforms compared are:
VMware ESX 3.5
Microsoft Hyper-V
Citrix XenServer 5
The hardware and virtual machine specifications are:
Guest Requirements
* Support Windows Server 2003 R2 with Service Pack 2 (x86 edition) as a guest operating system
* Permit the provisioning of guest virtual machines in one of two configurations:
* Memory at 1024MB, 10GB local drive space
* Memory at 2048MB, 20GB local drive space
* No CPU limits in place
Host Requirements
* Support an installation on the three parallel systems of identical configuration: Dell PowerEdge 2950 2×2 @ 3.0GHz, 16GB RAM, 360GB local storage on one single array (RAID 5)
* Permit use of local array for guest virtual machines
The tests performed are summarized in the following image:
And the results are all in the following image:
The test showed that at the Hypervisor level, ESX is optimized for fewer workloads. For workload-intensive workloads that cannot be optimized for memory overcommitted, Hyper-V and XenServer should be considered as the most suitable. However, remember that this test is a SQL Server 2005-specific test on a 32-bit Windows 2003 virtual machine.